﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using HHo_Model;
using HHo_Negocio;
using System.Collections.Generic;

public partial class mantenimientos_SubATA_wfDataSubATA : System.Web.UI.Page
{
    GestorSubATA oGestSubATA;
    E_SubATA eSubATA;
    List<E_SubATA> lst;

    protected void Page_Load(object sender, EventArgs e)
    {
        ClientScriptManager cs = Page.ClientScript;

        if (!Page.IsPostBack)
        {
            if (Request.QueryString["cop"] != null)
            {
                hidOp.Value = Request.QueryString["cop"];

                if (Request.QueryString["cid"] != null)
                    hidID.Value = Request.QueryString["cid"];
                try
                {
                    switch (hidOp.Value)
                    {
                        case "0M"://StringConstantes.MAN_OPE_MODIF :
                            lblOperacion.Text = "Modificación";
                            PoblarCampos(hidID.Value);
                            break;
                        case "1N": //StringConstantes.MAN_OPE_NUEVO :
                            lblOperacion.Text = "Nuevo";
                            ActivarEdicion(true);
                            break;
                        case "2D": //StringConstantes.MAN_OPE_DETALLE :
                            lblOperacion.Text = "Detalles";
                            PoblarCampos(hidID.Value);
                            ActivarEdicion(false);
                            btnGrabar.Enabled = false;
                            break;
                        case "3E": //StringConstantes.MAN_OPE_ELIM :
                            lblOperacion.Text = "Eliminar";
                            PoblarCampos(hidID.Value);
                            lblEstado.Text = "Eliminado";
                            ManejarClickGrabar();
                            break;
                        case "4R":
                            lblOperacion.Text = "Activar";
                            PoblarCampos(hidID.Value);
                            lblEstado.Text = "Activo";
                            ManejarClickGrabar();
                            break;
                    }
                }
                catch (Exception ex)
                {
                    cs.RegisterStartupScript(this.GetType(), "ExceptionLoad", "alert('Error del sistema en el evento Load, revise los datos ingresados')", true);
                }
            }
            else
            {
                cs.RegisterStartupScript(this.GetType(), "Close", "CloseNoPermitido()", true);
                return;
            }
        }
    }


    private void ActivarEdicion(bool opc)
    {
        txtCodATA.ReadOnly = !opc;
        txtCodSubATA.ReadOnly = !opc;
        txtDesc.ReadOnly = !opc;
    }

    private void PoblarCampos(string Id)
    {
        oGestSubATA = new GestorSubATA();
        eSubATA = new E_SubATA();
        string[] splitID;
        splitID = Id.Split('_');
        try
        {
            eSubATA.CodATA = splitID[0];
            eSubATA.CodSubATA = splitID[1];
            lst = oGestSubATA.Man_ConsultaSubATA(eSubATA);

            if (lst.Count > 0)
            {
                txtCodATA.Text = lst[0].CodATA;
                txtCodSubATA.Text = lst[0].CodSubATA;
                txtDesc.Text = lst[0].Desc;

                if (lst[0].Estado.Trim() == "1")
                    lblEstado.Text = "Activo";
                else
                    lblEstado.Text = "Eliminado";
            }
        }
        catch (Exception ex)
        {
            throw;
        }
    }

    private bool Grabar()
    {
        bool returnValue = false;
        oGestSubATA = new GestorSubATA();
        eSubATA = new E_SubATA();

        eSubATA.CodATA = txtCodATA.Text;
        eSubATA.CodSubATA = txtCodSubATA.Text;
        eSubATA.Desc = txtDesc.Text;

        if ((hidOp.Value == StringConstantes.MAN_OPE_ELIM) || (hidOp.Value == StringConstantes.MAN_OPE_MODIF)
            || (hidOp.Value == StringConstantes.MAN_OPE_REACTIV))
        {
            if (lblEstado.Text == "Activo")
                eSubATA.Estado = "1";
            else
                eSubATA.Estado = "0";

            returnValue = oGestSubATA.Man_ActualizaSubATA(eSubATA);
        }
        else
        {
            if (hidOp.Value == StringConstantes.MAN_OPE_NUEVO)
            {
                eSubATA.Estado = "1";
                returnValue = oGestSubATA.Man_InsertSubATA(eSubATA);
            }
            else
                returnValue = false;
        }

        return returnValue;
    }

    private bool ValidarCampos()
    {
        return true;
    }

    private void ManejarClickGrabar()
    {
        ClientScriptManager cs = Page.ClientScript;
        if (ValidarCampos())
        {
            try
            {
                if (Grabar())
                {
                    cs.RegisterStartupScript(this.GetType(), "Confirmacion", "ConfirmacionClose()", true);
                }
                else
                {
                    cs.RegisterStartupScript(this.GetType(), "NoConfirmacion", "alert('No se ha podido grabar los datos')", true);
                }
            }
            catch (Exception ex)
            {
                Response.Write("Error del Sistema al Grabar " + ex.Message);
            }
        }
        else
            cs.RegisterStartupScript(this.GetType(), "ValidarGrabar", "alert('Los datos de codigo y descriopcion no deben estar vacios')", true);
    }


    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        ManejarClickGrabar();
    }
}
